/**
 * @description 登录验证的中间件
 * @author 刘煎蛋
 */

const { ErrorModel } = require('../model/ResModel');
const { loginCheckFailInfo } = require('../model/ErrorInfo');

/**
 * 登录验证
 * @param {*} ctx 
 * @param {*} next 
 */
async function loginCheck( ctx, next ) {
    if ( ctx.session && ctx.session.userInfo ) {
        await next();
        return
    }
    ctx.body = new ErrorModel(loginCheckFailInfo);
}

/**
 * 页面登录验证
 * @param {Object} ctx ctx
 * @param {function} next next
 */
async function loginRedirect(ctx, next) {
    if (ctx.session && ctx.session.userInfo) {
        // 已登录
        await next()
        return
    }
    // 未登录
    const curUrl = ctx.url
    ctx.redirect('/login?url=' + encodeURIComponent(curUrl))
}

module.exports = {
    loginCheck,
    loginRedirect
}